package com.hsylient.TemplatePattern.demo01;

/**
 * 1.创建一个抽象类，它的模板方法被设置为 final
 * 2.然后再模板方法中调用这些抽象方法，不用去管子类怎么实现
 * 3.执行的流程都是按照模板中的代码执行的
 */
public abstract class Game {
    abstract void initialize();

    abstract void startPlay();

    abstract void endPlay();

    //模板
    public final void play() {

        //初始化游戏
        initialize();

        //开始游戏
        startPlay();

        //结束游戏
        endPlay();
    }
}